package com.tjetc.tcp.server;

import com.tjetc.util.StreamUtils;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class _3Server {
    /*
        1.编写一个服务端，和一个客户端
        2.服务器端在8888端口监听
        3.客户端连接到服务端，发送一张图片e:\\qie.png
        4.服务器端接收到客户端发送的图片，保存到src下，发送“收到图片”再退出
        5.客户端接收到服务端发送的“收到图片”,再退出
        6.该程序要求使用StreamUtils.java,我们直接使用
     */
    public static void main(String[] args) throws Exception {
        System.out.println("等待链接:");
        try (
                ServerSocket serverSocket = new ServerSocket(9999);
                Socket socket = serverSocket.accept();
                // 用来接收客户端发送的请求
                BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
                // 用来保存到本地
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("/Users/gaoyongxiang/百度网盘/IDEA-Java/202507-java-se/chapter17/img/1.jpg"));
                // 响应客户端消息
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
        ) {
            byte[] bytes = StreamUtils.streamToByteArray(bis);
            bos.write(bytes);

            // 给客户端发送消息
            bw.write("accept");
            bw.flush();

            System.out.println("服务端退出");
        }

    }
}
